package com.remenote.remenoteback.service;

import com.remenote.remenoteback.entity.req.NoteRequest;
import com.remenote.remenoteback.entity.resp.ServerResponse;
import com.remenote.remenoteback.entity.vo.NoteVo;
import com.remenote.remenoteback.entity.vo.NotebookListVo;
import com.remenote.remenoteback.entity.vo.NotebookVo;
import com.remenote.remenoteback.entity.vo.UserVo;
import jakarta.transaction.Transactional;

import java.util.List;

public interface NoteService{
    ServerResponse<List<NoteVo>> allNotes();
    /** 笔记本列表*/
    ServerResponse<NotebookListVo> listNotebooks();
    /** 笔记列表*/
    ServerResponse<List<NoteVo>> listNotes(Integer notebookId);
    /** 获取笔记*/
    ServerResponse<NoteVo> getNote(String notebookName, String noteTitle);
//    ServerResponse<NoteVo> getNote(Integer id);

//    ServerResponse<NoteVo> getNote(String notebookName, String noteTitle, String username);
    /** 搜索笔记*/
    ServerResponse<List<NoteVo>> search(String keyWord);
    /** 创建笔记本*/
    ServerResponse<NotebookListVo> createNotebook(String notebookName,String description);
    /**　创建笔记*/
    ServerResponse<NoteVo> createNote(String noteTitle, Integer notebookId, String content);
    /** 保存笔记*/
    ServerResponse saveNote(NoteRequest noteRequest);

    ServerResponse moveNote(NoteRequest noteRequest);

    /** 删除笔记*/
    @Transactional
    ServerResponse deleteNote(Integer noteId);

    /** 删除笔记本*/
    ServerResponse deleteNotebook(Integer notebookName);
}